package com.zmn.oms.dubbo.interfaces.zmn.serviceprovider.order;

import com.zmn.common.dto.ResponseDTO;
import com.zmn.oms.common.constant.OrderGateTypeConsts;
import com.zmn.oms.dubbo.dto.zmn.order.OrderDRO;
import com.zmn.oms.dubbo.dto.zmn.order.OrderListPageDRO;
import com.zmn.oms.dubbo.dto.zmn.order.OrderScheduleDayDRO;
import com.zmn.oms.dubbo.dto.zmn.order.OrderScheduleTimeDRO;
import com.zmn.oms.dubbo.dto.zmn.order.serviceprovider.OrderQueryDIO;
import com.zmn.oms.dubbo.dto.zmn.order.serviceprovider.SpOrderDetailDRO;

/**
 * 类描述：服务商订单相关列表查询
 *
 * @author yule
 * @date 2019/05/15 17:02
 */
@Deprecated
public interface OrderListRemoteService {

	/**
	 * 获取工单列表
	 *
	 * @param queryDIO
	 * @return
	 */
	ResponseDTO<OrderListPageDRO> listOrder(OrderQueryDIO queryDIO);

	/**
	 * 服务商订单详情
	 *
	 * @param orderId
	 * @param workId
	 * @return
	 */
	ResponseDTO<SpOrderDetailDRO> findOrderWorkDetail(Long orderId, Long workId);

	/**
	 * 获取默认预约时间
	 * @see OrderGateTypeConsts#GATE_PLAT_BACKSTAGE
	 *
	 * @return
	 */
	ResponseDTO getDefaultDutyTime(Integer plat, Integer geteType);

	/**
	 * 过滤预约时间区间
	 * @see OrderGateTypeConsts#GATE_PLAT_BACKSTAGE
	 *
	 * @param orderId  订单ID
	 * @param plat     平台
	 * @param gateType 入口
	 * @param times
	 * @return
	 */
	ResponseDTO<String> processScheduleTimes(Long orderId, Integer plat, Integer gateType, String times);

	/**
	 * 后台获取预约排期
	 *
	 * @return
	 */
	ResponseDTO<OrderScheduleDayDRO> getScheduleDayList();

	/**
	 * 后台获取预约排期
	 *
	 * @return
	 */
	ResponseDTO<OrderScheduleTimeDRO> getScheduleTimes(String scheDate);

	/**
	 * 获取订单
	 * @param orderId
	 * @return
	 */
	ResponseDTO<OrderDRO> getOrderById(Long orderId);

}